# Open Meridian > Open Meridian is the open-source OEMS you run yourself and build on with plugins. A plugin talks only to its own sidecar, and the roles it holds, from a fixed list, decide what it may do. This index is for an agent building a plugin: the roles, the principles a plugin must fit, the method that maps a request to the least roles, every operation a plugin may take at contract v24, and each store's data dictionary. Roles are fixed and their grants generated: nobody can change a role's grants, not even for one plugin. Map an idea to the least roles that hold what it needs, or reshape it until it fits. Who may use a plugin is a person's read, write or admin on it, granted by a deployment admin, never a role. ## Roles - [Roles](https://open-meridian.dev/concepts/roles/): each role's persona, function, duties, what it leaves to another role and what it holds at contract v24 - [Principles](https://open-meridian.dev/concepts/roles/#principles): the 14 principles a request must fit before any role is chosen - [From an idea to the least roles](https://open-meridian.dev/concepts/roles/#method): the method, in 7 steps, including when a request must be reshaped - [Worked examples](https://open-meridian.dev/concepts/roles/#examples): 8 requests mapped to their least roles, or reshaped - [connectivity](https://open-meridian.dev/concepts/roles/#connectivity): Connects the firm to a broker or venue, sending placements in the venue's own form and reporting what the venue says. - [compliance](https://open-meridian.dev/concepts/roles/#compliance): Checks acts against the firm's rules before and after the trade, each verdict naming what it checked, and posts standing approved limits execution may act within. - [custody](https://open-meridian.dev/concepts/roles/#custody): Brings a custodian's, prime broker's or broker's statements, positions and cash into the street store, and keeps its own connection complete. - [data](https://open-meridian.dev/concepts/roles/#data): Puts market, reference and alternative data into the lake, its vendor's codes converted into the platform's attributes. - [ems](https://open-meridian.dev/concepts/roles/#ems): Works orders across venues, creating placements and coordinating requests for quote. - [confirmation](https://open-meridian.dev/concepts/roles/#confirmation): Confirms and affirms trades with external matching services. - [oms](https://open-meridian.dev/concepts/roles/#oms): Works committed orders — merging and splitting, coordinating compliance checks, setting execution instructions — and books and hands them off. - [operations](https://open-meridian.dev/concepts/roles/#operations): Keeps the book right after the trade — opening balances, adjustments, reconciliation with the street, allocations after the hand-off and transfers. - [portfolio](https://open-meridian.dev/concepts/roles/#portfolio): Makes the investment decision — what and how much — specifying portfolio parameters, risk analytics and proposed trades' overlap with the common optimiser and analytics components, and proposes orders and allocation instructions. - [reporting](https://open-meridian.dev/concepts/roles/#reporting): Specifies and shows reports and analyses, the common analytics component computing them; sends reports and regulatory submissions out, keeping them as sent. - [servicing](https://open-meridian.dev/concepts/roles/#servicing): Handles corporate actions, lifecycle events and coupons. - [settlement](https://open-meridian.dev/concepts/roles/#settlement): Transmits a transfer it is named on over an external settlement rail and reports the outcome. - [signal](https://open-meridian.dev/concepts/roles/#signal): Generates signals, masters data in the lake from several sources and creates scenario definitions. - [reference](https://open-meridian.dev/concepts/roles/#reference): Gathers a security's terms from sources, reconciles them and fills its template, offering each value to the instrument store with its provenance. ## Operations at contract v24 - [report_sync_status](https://open-meridian.dev/api/typed-operations/#report_sync_status): ReportSyncStatus, W2.1 Observe the brokerage sync state: an event, published by custody - [record_holdings_statement](https://open-meridian.dev/api/typed-operations/#record_holdings_statement): RecordHoldingsStatement, W2.2 Open a holdings statement: a command, published by custody - [record_holding](https://open-meridian.dev/api/typed-operations/#record_holding): RecordHolding, W2.3 Publish each holding: a command, published by custody - [StatementRecorded](https://open-meridian.dev/api/python-sdk/#receive): StatementRecorded, W2.5 Close the statement: an event, heard by operations, with receive - [CustodialPositionUpdated](https://open-meridian.dev/api/python-sdk/#receive): CustodialPositionUpdated, W2.6 Publish custodial position updates: an event, heard by operations, with receive - [list_custodial_positions](https://open-meridian.dev/api/typed-operations/#list_custodial_positions): ListCustodialPositions, W2.7 Read custodial positions: a query, read by operations - [report_external_accounts](https://open-meridian.dev/api/typed-operations/#report_external_accounts): ReportExternalAccounts, W2.8 Report the accounts a connection reaches: an event, published by custody - [list_statements](https://open-meridian.dev/api/typed-operations/#list_statements): ListStatements, W2.9 Read completed statements: a query, read by operations - [record_activity](https://open-meridian.dev/api/typed-operations/#record_activity): RecordActivity, W2.10 Record an account's activity: a command, published by custody - [list_activities](https://open-meridian.dev/api/typed-operations/#list_activities): ListActivities, W2.11 List an account's activity: a query, read by operations - [ActivityRecorded](https://open-meridian.dev/api/python-sdk/#receive): ActivityRecorded, W2.12 Publish that activity was recorded: an event, heard by operations, with receive - [SyncStatusRecorded](https://open-meridian.dev/api/python-sdk/#receive): SyncStatusRecorded, W2.13 Publish that a sync status was recorded: an event, heard by operations, with receive - [list_sync_statuses](https://open-meridian.dev/api/typed-operations/#list_sync_statuses): ListSyncStatuses, W2.14 Read an account's sync status: a query, read by operations - [re_resolve_activity](https://open-meridian.dev/api/typed-operations/#re_resolve_activity): ReResolveActivity, W2.15 Re-resolve a recorded activity: a command, published by custody - [ActivityReResolved](https://open-meridian.dev/api/python-sdk/#receive): ActivityReResolved, W2.16 Publish that an activity was re-resolved: an event, heard by operations, with receive - [resolve_identifier](https://open-meridian.dev/api/typed-operations/#resolve_identifier): ResolveIdentifier, W3.1 Resolve an identifier set: a query, read by connectivity, custody, data, reference, reporting - [report_missing_instrument](https://open-meridian.dev/api/typed-operations/#report_missing_instrument): ReportMissingInstrument, W3.2 Report an ambiguous resolution: an event, published by connectivity, custody, data - [resolve_instrument](https://open-meridian.dev/api/typed-operations/#resolve_instrument): ResolveInstrument, W3.6 Resolve an instrument for display: a query, read by compliance, connectivity, data, ems, oms, operations, portfolio, reference, reporting - [ReplaceMergedInstrument](https://open-meridian.dev/api/python-sdk/#receive): ReplaceMergedInstrument, W3.8 Replace a merged or resolved record: an event, heard by compliance, confirmation, connectivity, custody, data, ems, oms, operations, portfolio, reference, reporting, servicing, settlement, signal, with receive - [resolve_venue](https://open-meridian.dev/api/typed-operations/#resolve_venue): ResolveVenue, W3.14 Resolve a venue: a query, read by connectivity, data, ems - [report_missing_venue](https://open-meridian.dev/api/typed-operations/#report_missing_venue): ReportMissingVenue, W3.15 Report a venue the deployment does not hold: an event, published by connectivity, data - [read_calendar](https://open-meridian.dev/api/typed-operations/#read_calendar): ReadCalendar, W3.19 Read a calendar: a query, read by compliance, confirmation, connectivity, custody, data, ems, oms, operations, portfolio, reference, reporting, servicing, settlement, signal - [compute_date](https://open-meridian.dev/api/typed-operations/#compute_date): ComputeDate, W3.20 Work out a date: a query, read by compliance, confirmation, connectivity, custody, data, ems, oms, operations, portfolio, reference, reporting, servicing, settlement, signal - [list_replacements](https://open-meridian.dev/api/typed-operations/#list_replacements): ListReplacements, W3.22 Catch up on replacements: a query, read by compliance, confirmation, connectivity, custody, data, ems, oms, operations, portfolio, reference, reporting, servicing, settlement, signal - [offer_template_fields](https://open-meridian.dev/api/typed-operations/#offer_template_fields): OfferTemplateFields, W3.23 Offer a template's fields: a command, published by reference - [list_templates](https://open-meridian.dev/api/typed-operations/#list_templates): ListTemplates, W3.24 Read the template catalogue, and keep it current: a query, read by compliance, confirmation, connectivity, custody, data, ems, oms, operations, portfolio, reference, reporting, servicing, settlement, signal - [read_template](https://open-meridian.dev/api/typed-operations/#read_template): ReadTemplate, W3.24 Read the template catalogue, and keep it current: a query, read by compliance, confirmation, connectivity, custody, data, ems, oms, operations, portfolio, reference, reporting, servicing, settlement, signal - [link_external_account](https://open-meridian.dev/api/typed-operations/#link_external_account): LinkExternalAccount, W6.4 Link a plugin's external account: a command, published by custody - [read_accounts_for_linking](https://open-meridian.dev/api/typed-operations/#read_accounts_for_linking): ReadAccountsForLinking, W6.4 Link a plugin's external account: a query, read by custody - [record_opening_balance](https://open-meridian.dev/api/typed-operations/#record_opening_balance): RecordOpeningBalance, W9.1 Record an account's opening balance: a command, published by operations - [record_break](https://open-meridian.dev/api/typed-operations/#record_break): RecordBreak, W9.4 Record a break: a command, published by operations - [record_account_figures](https://open-meridian.dev/api/typed-operations/#record_account_figures): RecordAccountFigures, W9.5 Record the account's figures: a command, published by operations - [handle_break](https://open-meridian.dev/api/typed-operations/#handle_break): HandleBreak, W9.6 Set a break's cause and handling: a command, published by operations - [close_breaks_as_cleared](https://open-meridian.dev/api/typed-operations/#close_breaks_as_cleared): CloseBreaksAsCleared, W9.7 Resolve or close a break: a command, published by operations - [resolve_break](https://open-meridian.dev/api/typed-operations/#resolve_break): ResolveBreak, W9.7 Resolve or close a break: a command, published by operations - [AccountAttributeChanged](https://open-meridian.dev/api/python-sdk/#receive): AccountAttributeChanged, W9.8 Journal each act and publish its changes: an event, heard by compliance, connectivity, ems, oms, operations, portfolio, reporting, with receive - [AccountFiguresRecorded](https://open-meridian.dev/api/python-sdk/#receive): AccountFiguresRecorded, W9.8 Journal each act and publish its changes: an event, heard by compliance, operations, portfolio, reporting, with receive - [BreakChanged](https://open-meridian.dev/api/python-sdk/#receive): BreakChanged, W9.8 Journal each act and publish its changes: an event, heard by compliance, oms, operations, portfolio, reporting, with receive - [PositionChanged](https://open-meridian.dev/api/python-sdk/#receive): PositionChanged, W9.8 Journal each act and publish its changes: an event, heard by compliance, oms, operations, portfolio, reporting, with receive - [list_positions](https://open-meridian.dev/api/typed-operations/#list_positions): ListPositions, W9.10 Read positions: a query, read by compliance, oms, operations, portfolio, reporting - [list_breaks](https://open-meridian.dev/api/typed-operations/#list_breaks): ListBreaks, W9.11 Read breaks: a query, read by compliance, oms, operations, portfolio, reporting - [list_account_figures](https://open-meridian.dev/api/typed-operations/#list_account_figures): ListAccountFigures, W9.12 Read the account's figures: a query, read by compliance, operations, portfolio, reporting - [list_account_attributes](https://open-meridian.dev/api/typed-operations/#list_account_attributes): ListAccountAttributes, W9.14 Read an account's attributes: a query, read by compliance, connectivity, ems, oms, operations, portfolio, reporting - [record_encumbrances](https://open-meridian.dev/api/typed-operations/#record_encumbrances): RecordEncumbrances, W9.15 Record a position's encumbrances: a command, published by operations - [record_bars](https://open-meridian.dev/api/typed-operations/#record_bars): RecordBars, W10.4 Record prices, bars, trades and quotes in batches: a command, published by data - [record_outcomes](https://open-meridian.dev/api/typed-operations/#record_outcomes): RecordOutcomes, W10.4 Record prices, bars, trades and quotes in batches: a command, published by data - [record_prices](https://open-meridian.dev/api/typed-operations/#record_prices): RecordPrices, W10.4 Record prices, bars, trades and quotes in batches: a command, published by data - [record_quotes](https://open-meridian.dev/api/typed-operations/#record_quotes): RecordQuotes, W10.4 Record prices, bars, trades and quotes in batches: a command, published by data - [record_trades](https://open-meridian.dev/api/typed-operations/#record_trades): RecordTrades, W10.4 Record prices, bars, trades and quotes in batches: a command, published by data - [BarsRecorded](https://open-meridian.dev/api/python-sdk/#receive): BarsRecorded, W10.5 Record, sequence and publish each row: an event, heard by compliance, portfolio, reporting, signal, with receive - [OutcomesRecorded](https://open-meridian.dev/api/python-sdk/#receive): OutcomesRecorded, W10.5 Record, sequence and publish each row: an event, heard by compliance, operations, portfolio, reporting, signal, with receive - [PricesRecorded](https://open-meridian.dev/api/python-sdk/#receive): PricesRecorded, W10.5 Record, sequence and publish each row: an event, heard by compliance, portfolio, reporting, signal, with receive - [QuotesRecorded](https://open-meridian.dev/api/python-sdk/#receive): QuotesRecorded, W10.5 Record, sequence and publish each row: an event, heard by ems, signal, with receive - [TradesRecorded](https://open-meridian.dev/api/python-sdk/#receive): TradesRecorded, W10.5 Record, sequence and publish each row: an event, heard by ems, signal, with receive - [list_bars](https://open-meridian.dev/api/typed-operations/#list_bars): ListBars, W10.6 Read prices, bars, trades and quotes, point in time, by source: a query, read by compliance, portfolio, reporting, signal - [list_outcomes](https://open-meridian.dev/api/typed-operations/#list_outcomes): ListOutcomes, W10.6 Read prices, bars, trades and quotes, point in time, by source: a query, read by compliance, operations, portfolio, reporting, signal - [list_prices](https://open-meridian.dev/api/typed-operations/#list_prices): ListPrices, W10.6 Read prices, bars, trades and quotes, point in time, by source: a query, read by compliance, portfolio, reporting, signal - [list_quotes](https://open-meridian.dev/api/typed-operations/#list_quotes): ListQuotes, W10.6 Read prices, bars, trades and quotes, point in time, by source: a query, read by ems, signal - [list_trades](https://open-meridian.dev/api/typed-operations/#list_trades): ListTrades, W10.6 Read prices, bars, trades and quotes, point in time, by source: a query, read by data, ems, signal - [decline_want](https://open-meridian.dev/api/typed-operations/#decline_want): DeclineWant, W10.7 Want what a read could not answer: a command, published by data - [ObservationsWanted](https://open-meridian.dev/api/python-sdk/#receive): ObservationsWanted, W10.7 Want what a read could not answer: an event, heard by data, with receive - [WantWithdrawn](https://open-meridian.dev/api/python-sdk/#receive): WantWithdrawn, W10.7 Want what a read could not answer: an event, heard by data, with receive - [list_datasets](https://open-meridian.dev/api/typed-operations/#list_datasets): ListDatasets, W10.9 Read the datasets: a query, read by compliance, data, ems, portfolio, reporting, signal - [propose_order](https://open-meridian.dev/api/typed-operations/#propose_order): ProposeOrder, W11.1 Propose an order: a command, published by ems, oms, portfolio - [record_order](https://open-meridian.dev/api/typed-operations/#record_order): RecordOrder, W11.2 Record an order the book did not create: a command, published by oms - [request_order_change](https://open-meridian.dev/api/typed-operations/#request_order_change): RequestOrderChange, W11.3 Ask for a change to an order: a command, published by ems, oms, portfolio - [record_check](https://open-meridian.dev/api/typed-operations/#record_check): RecordCheck, W11.4 Record a check: a command, published by compliance - [decide_approval](https://open-meridian.dev/api/typed-operations/#decide_approval): DecideApproval, W11.5 Require, give or override approval, or reject an order: a command, published by compliance, oms - [release_order](https://open-meridian.dev/api/typed-operations/#release_order): ReleaseOrder, W11.6 Release an order: a command, published by oms - [set_working_condition](https://open-meridian.dev/api/typed-operations/#set_working_condition): SetWorkingCondition, W11.7 Claim, hold or pause an order: a command, published by ems, oms - [create_placement](https://open-meridian.dev/api/typed-operations/#create_placement): CreatePlacement, W11.8 Create a placement: a command, published by ems - [request_placement_change](https://open-meridian.dev/api/typed-operations/#request_placement_change): RequestPlacementChange, W11.9 Ask for a change to a placement: a command, published by connectivity, ems, oms - [report_placement](https://open-meridian.dev/api/typed-operations/#report_placement): ReportPlacement, W11.10 Report a placement's progress: a command, published by connectivity - [report_execution](https://open-meridian.dev/api/typed-operations/#report_execution): ReportExecution, W11.11 Report an execution: a command, published by connectivity, ems, oms - [report_charge](https://open-meridian.dev/api/typed-operations/#report_charge): ReportCharge, W11.12 Report a charge: a command, published by connectivity - [ExecutionRecorded](https://open-meridian.dev/api/python-sdk/#receive): ExecutionRecorded, W11.13 Journal each act, and publish what changed: an event, heard by compliance, connectivity, ems, oms, operations, portfolio, reporting, with receive - [OrderUpdated](https://open-meridian.dev/api/python-sdk/#receive): OrderUpdated, W11.13 Journal each act, and publish what changed: an event, heard by compliance, ems, oms, operations, portfolio, reporting, with receive - [PlacementUpdated](https://open-meridian.dev/api/python-sdk/#receive): PlacementUpdated, W11.13 Journal each act, and publish what changed: an event, heard by compliance, connectivity, ems, oms, with receive - [UnplacedFactRecorded](https://open-meridian.dev/api/python-sdk/#receive): UnplacedFactRecorded, W11.13 Journal each act, and publish what changed: an event, heard by operations, with receive - [acknowledge_flag](https://open-meridian.dev/api/typed-operations/#acknowledge_flag): AcknowledgeFlag, W11.14 Acknowledge a flag: a command, published by oms, operations - [list_trading_instructions](https://open-meridian.dev/api/typed-operations/#list_trading_instructions): ListTradingInstructions, W11.16 Hear and read the trading instructions in force: a query, read by compliance, connectivity, ems, oms, portfolio - [TradingInstructionChanged](https://open-meridian.dev/api/python-sdk/#receive): TradingInstructionChanged, W11.16 Hear and read the trading instructions in force: an event, heard by compliance, connectivity, ems, oms, portfolio, with receive - [list_orders](https://open-meridian.dev/api/typed-operations/#list_orders): ListOrders, W11.17 Read orders, and an order's history: a query, read by compliance, connectivity, ems, oms, operations, portfolio, reporting - [read_order_history](https://open-meridian.dev/api/typed-operations/#read_order_history): ReadOrderHistory, W11.17 Read orders, and an order's history: a query, read by compliance, oms, operations, reporting - [list_locates](https://open-meridian.dev/api/typed-operations/#list_locates): ListLocates, W11.18 Record a locate and the prime's answer: a query, read by compliance, oms, portfolio - [LocateUpdated](https://open-meridian.dev/api/python-sdk/#receive): LocateUpdated, W11.18 Record a locate and the prime's answer: an event, heard by compliance, oms, portfolio, with receive - [record_locate](https://open-meridian.dev/api/typed-operations/#record_locate): RecordLocate, W11.18 Record a locate and the prime's answer: a command, published by connectivity - [record_locate_use](https://open-meridian.dev/api/typed-operations/#record_locate_use): RecordLocateUse, W11.19 Reserve, give back or consume a locate: a command, published by compliance, oms - [read_venue_catalogue](https://open-meridian.dev/api/typed-operations/#read_venue_catalogue): ReadVenueCatalogue, W11.20 Publish the venue's catalogue: a query, read by ems, oms - [report_venue_catalogue](https://open-meridian.dev/api/typed-operations/#report_venue_catalogue): ReportVenueCatalogue, W11.20 Publish the venue's catalogue: an event, published by connectivity; heard by ems, oms - [map_venue_account](https://open-meridian.dev/api/typed-operations/#map_venue_account): MapVenueAccount, W11.22 Map an account to a venue account code: a command, published by ems - [accept_execution](https://open-meridian.dev/api/typed-operations/#accept_execution): AcceptExecution, W11.23 Accept an unmatched execution to an order: a command, published by ems - [dont_know_execution](https://open-meridian.dev/api/typed-operations/#dont_know_execution): DontKnowExecution, W11.24 Answer an unmatched execution DK: a command, published by ems - [report_value_date_roll](https://open-meridian.dev/api/typed-operations/#report_value_date_roll): ReportValueDateRoll, W11.25 Report a value-date roll: a command, published by connectivity - [set_allocation_instruction](https://open-meridian.dev/api/typed-operations/#set_allocation_instruction): SetAllocationInstruction, W11.26 Set an order's allocation instruction: a command, published by operations, portfolio - [book_order](https://open-meridian.dev/api/typed-operations/#book_order): BookOrder, W11.27 Book an order's executions to its accounts: a command, published by oms - [hand_off_booking](https://open-meridian.dev/api/typed-operations/#hand_off_booking): HandOffBooking, W11.28 Hand off or close a booking: a command, published by oms - [correct_booking](https://open-meridian.dev/api/typed-operations/#correct_booking): CorrectBooking, W11.29 Correct a booking: a command, published by oms, operations - [BookingUpdated](https://open-meridian.dev/api/python-sdk/#receive): BookingUpdated, W11.30 Journal each booking act, and publish what changed: an event, heard by compliance, oms, operations, portfolio, reporting, with receive - [list_bookings](https://open-meridian.dev/api/typed-operations/#list_bookings): ListBookings, W11.31 Read bookings: a query, read by compliance, oms, operations, portfolio, reporting - [report_give_up](https://open-meridian.dev/api/typed-operations/#report_give_up): ReportGiveUp, W11.32 Report a give-up's answer: a command, published by confirmation, connectivity - [record_sleeve_cross](https://open-meridian.dev/api/typed-operations/#record_sleeve_cross): RecordSleeveCross, W11.33 Record a sleeve cross: a command, published by oms - [acknowledge_alert](https://open-meridian.dev/api/typed-operations/#acknowledge_alert): AcknowledgeAlert, W11.34 Raise, acknowledge and clear an alert: a command, published by compliance - [raise_alert](https://open-meridian.dev/api/typed-operations/#raise_alert): RaiseAlert, W11.34 Raise, acknowledge and clear an alert: a command, published by compliance - [AlertChanged](https://open-meridian.dev/api/python-sdk/#receive): AlertChanged, W11.35 Hear and read alerts: an event, heard by compliance, oms, operations, reporting, with receive - [list_alerts](https://open-meridian.dev/api/typed-operations/#list_alerts): ListAlerts, W11.35 Hear and read alerts: a query, read by compliance, oms, operations, reporting - [read_local_record_orders](https://open-meridian.dev/api/typed-operations/#read_local_record_orders): ReadLocalRecordOrders, W11.37 Read whether an order may name a local record: a query, read by compliance, connectivity, ems, oms, portfolio ## Data dictionary at contract v24 - [The book of record](https://open-meridian.dev/boundaries/bor/): the deployment's own record of positions, lots, breaks and figures: 935 entries, each field's meaning, bounds and required uses - [The conductor's accounts](https://open-meridian.dev/boundaries/conductor/): the deployment's accounts and the links a plugin makes to them, and a plugin's settings, holds and moves as core's tools show them: 123 entries, each field's meaning, bounds and required uses - [The dashboard's records](https://open-meridian.dev/boundaries/dashboard/): tickets, their notes and the inbox's notices, a setting as the settings tool shows it, what agents may do with each act and a person's own settings, as the dashboard keeps them: 57 entries, each field's meaning, bounds and required uses - [The envelope](https://open-meridian.dev/boundaries/envelope/): what every bus message carries about itself: 20 entries, each field's meaning, bounds and required uses - [The instrument store](https://open-meridian.dev/boundaries/instrument/): the deployment's instrument records, and resolving an identifier to one; the venues it pulled from the platform's venue master: 183 entries, each field's meaning, bounds and required uses - [The lake](https://open-meridian.dev/boundaries/lake/): what data sources say: prices and bars by dataset, each dataset's entitlements, and the source priority a default read takes: 199 entries, each field's meaning, bounds and required uses - [Shared types](https://open-meridian.dev/boundaries/shared/): a number, an amount of currency, and where a change sits in a store's record: 31 entries, each field's meaning, bounds and required uses - [The sidecar](https://open-meridian.dev/boundaries/sidecar/): registration, settings, access, scope, figures, refusals and the delivery stream: 389 entries, each field's meaning, bounds and required uses - [The street](https://open-meridian.dev/boundaries/street/): what custodians say an account holds, as a plugin at the edge reports it: 230 entries, each field's meaning, bounds and required uses ## What every plugin does - [Register](https://open-meridian.dev/api/python-sdk/#connect): W4.1 Register, through the SDK - [Heartbeat](https://open-meridian.dev/api/python-sdk/#report): W4.5 Report health, through the SDK - [Leave](https://open-meridian.dev/api/python-sdk/#leave): W4.6 Leave, through the SDK - [WatchSettings](https://open-meridian.dev/api/python-sdk/#settings): W4.7 Receive settings, through the SDK - [PluginAccess](https://open-meridian.dev/api/python-sdk/#access): W4.10 Learn who may use the plugin, through the SDK - [WatchAccountScope](https://open-meridian.dev/api/python-sdk/#account_scope): W4.11 Receive the plugin's account scope, through the SDK - [FileTicket](https://open-meridian.dev/api/python-sdk/#file_ticket): W4.12 A plugin files a ticket, and reads what it filed, through the SDK - [FiledTickets](https://open-meridian.dev/api/python-sdk/#filed_tickets): W4.12 A plugin files a ticket, and reads what it filed, through the SDK - [RecordMove](https://open-meridian.dev/api/python-sdk/#the-archive): W4.13 Report a move of raw records, through the SDK - [ReadPreparedCall](https://open-meridian.dev/api/python-sdk/#prepared): W4.14 Read the prepared change a page was opened from, through the SDK - [CallAsServiceAccount](https://open-meridian.dev/api/python-sdk/#runs_as): W4.15 Call its own act as its role's service account, through the SDK - [SetOwnSettings](https://open-meridian.dev/api/python-sdk/#own_settings): W6.31 Save one's own settings for a plugin, through the SDK ## Building a plugin - [Typed operations](https://open-meridian.dev/api/typed-operations/): every operation a plugin's roles let it take, with its arguments, what it returns and its errors - [Python SDK](https://open-meridian.dev/api/python-sdk/): connecting to the sidecar, settings, access, figures, receiving what a plugin's roles hear, filing a ticket for a person, an edge plugin's archive, the lake, and pages - [Plan your deployment](https://open-meridian.dev/concepts/plan-your-deployment/): a firm's profile answered in three layers: core as its books and records, the plugins by role (existing, planned in a named release, or to build against the contract) and configuration, with what is missing named as a spec to bring, each plugin's registry and who checks it; three worked profiles - [Integrations](https://open-meridian.dev/how-to/integrations/): the released plugins, the service each works with, its roles, asset classes, environments, status, version and contract, filterable by role, asset class, environment and status - [Prove a plugin against a released runtime](https://open-meridian.dev/how-to/prove-a-plugin-against-a-released-runtime/): an end-to-end check of what a plugin records, on core's plugin harness: a real sidecar, street store and book - [Build a plugin's page](https://open-meridian.dev/how-to/build-a-plugin-page/): declaring a plugin's pages and the levels they serve, and building them on the plugin UI kit - [Report the custodian's activity](https://open-meridian.dev/how-to/report-the-custodians-activity/): a custody plugin's activity reported once and backfilled to history_from, and an operations plugin reading it - [Set a plugin's settings](https://open-meridian.dev/how-to/set-a-plugins-settings/): settings set on the dashboard's form by the plugin's admin, each change recorded, and a table setting declared and read with who changed each row - [Core's tools](https://open-meridian.dev/api/core-tools/): the deployment's own MCP tools for a plugin's area -- its Summary, settings, archive, holds, launching and stopping -- each at its page's role and level, a note on every change, never a secret's value and never a change to who holds access; and the Data sources page's five, its datasets' licences, entitlements and source priority, at the deployment admin's level; the prepared changes' seven and the accounts a plugin may link to - [The lake](https://open-meridian.dev/concepts/the-lake/): prices and bars by dataset from data plugins: versions, reads by business date and as of a recorded time, the source priority, wants, kept or served - [Write a data plugin against its suite](https://open-meridian.dev/how-to/write-a-data-plugin/): a data plugin from plugin new --role data: its catalogue, conversion at the edge, wants, and the data suite - [Prepared changes](https://open-meridian.dev/concepts/prepared-changes/): an agent or a person prepares a change and a person makes it; what agents may do with each act (may make, prepare only, may not), set by the deployment admin and a plugin's admin; the second pair of eyes; the Inbox; lapse - [License and entitle a dataset](https://open-meridian.dev/how-to/license-and-entitle-a-dataset/): the Data sources page: a dataset's licence, the plugins entitled to it, and the source priority - [One ID per instrument](https://open-meridian.dev/concepts/one-id/): every instrument named by the platform's INS- ID; a deployment's provisional LCL- records, never priced, and why; test provisional, never the prefix; replacements, templates, the licence list, usage reporting and orders on local records - [Booking](https://open-meridian.dev/concepts/booking/): an order's executions booked to its accounts, the exact check, lots, the block, the error account, the hand-off, corrections, sleeves, give-ups and alerts