Extension Structures: Protocol Documentation
"Extension structures" refer to messages and definitions that are not included in the core OpenCannabis spec, but
are instead proposed via a Specification Extension.
Definitions considered core to the main specification are enumerated separately in
Part 1.1, Core Structures. Table of Contents
media: Images, video, documents, etc.
menu : Distribution channels, product labels, product types, etc.
commerce: Commercial ordering and fulfillment structures.
labtesting: Laboratory testing and QA.
proximity: Bluetooth and GPS-related structures.
oauth: OAuth2 implementation structures.
accounting: Bookkeeping, accounting, taxes, and so on.
Full menu structures and payloads.
product: repeated MenuProduct
payload: repeated SectionData
apothecary: repeated StaticMenu.ApothecaryEntry
cartridges: repeated StaticMenu.CartridgesEntry
edibles: repeated StaticMenu.EdiblesEntry
extracts: repeated StaticMenu.ExtractsEntry
flowers: repeated StaticMenu.FlowersEntry
merchandise: repeated StaticMenu.MerchandiseEntry
plants: repeated StaticMenu.PlantsEntry
prerolls: repeated StaticMenu.PrerollsEntry
Custom configuration-based menu sections, usually via
String ID for a custom section.
Filtered section specification.
Specifies media for a section.
Specifies a media item to use as a tablet homescreen tile for this section.
Specifies settings that a menu section may consider.
Specifies a menu section, along with section configuration (settings and flags).
Known and enumerated menu section.
Custom, filter-based menu section.
Arbitrary name for other types of sections.
Settings to apply to the subject section.
Current set of flags to apply to the subject section.
Special filtered sections - commonly used sections based on filters builtin to apps/sites.
Only presents products that are on sale.
Only presents products that are cultivated, manufactured, or otherwise produced in-house.
Only presents products containing CBD.
Known sections, that are expected to be included with nearly every menu.
Unspecified or unknown section.
Traditional "buds" or "flowers" section.
Concentrated cannabis products such as oils, waxes and hashes.
Edible cannabis products, such as brownies, candy bars, etc.
Cartridge and pen battery products.
Tinctures, teas, and other miscellaneous products.
Pre-rolled flower-based joints, potentially fortified.
Plant clones, seeds, and other cultivation products.
Flags that may be applied to a section's configuration.
This section should not be displayed.
This section should be promoted and/or presented with high priority.
Holds a full specification for a revision of menu data, segmented into sections, by the categories member products
are filed in. Categories are enumerated in
Metadata for the menu.
Data payloads attached to this menu.
Specifies a static menu, where each section is specified as a typed map, with keys mapped to products.
Menu product payload stanza. Specifies a single product as a member of a menu section.
Specifies settings used to generate a menu, or used as input when generating menus.
Specifies metadata for a package of menu data.
Partner location that owns this menu data.
Version number, or publish timestamp, of this data.
Status of this menu data.
Flags attached to this menu data.
When this menu data was published.
Settings that produced this menu data.
Specifies an inner menu payload which contains menu data for a given menu section.
Count of products included in this menu section data.
Section that this data is attached to.
Menu products attached to this section.
Specifies a menu split into section-level chunks.
Count of all products included in this menu, all sections considered.
Specifies a payload of sectioned menu data.
Specifies an inner menu payload which contains mapped data, where each map key is a section name, lowercased, and
each map value is itself a product, and each map is addressed at a typed property name.
Enumerates flags that can be set on a menu.
Indicates that this entire menu is considered a draft.
Indicates that the underlying menu data is currently private and should not be exposed publicly.
Indicates that the underlying menu data is known to be out-of-date.
Enumerates statuses a menu may assume.
Indicates that a menu revision is not yet published.
Indicates that a menu revision has been published and is considered live.