7.4 KiB
7.4 KiB
Nomenclature System for Cards, Real Things, and Consumables
This document captures the agreed naming scheme so we never confuse digital records with real-world things in everyday speech. Use it in product copy, docs, and APIs.
1) Core Rules (Simple & Consistent)
- Card = the digital record. Always say “X card” when you mean the record.
Example: “Open the drill card.” - Real things = just say the plain noun (“the drill”, “100 yards of duct tape”).
Only add a qualifier when ambiguity matters (e.g., “the drill card vs the drill”). - Avoid the word unit in ordinary speech. If a distinction is essential in technical text, use piece (durable) or lot (consumable batch).
- Consumables use supply terms: stock, lot, and move (receipt/issue/transfer).
- Keep schema versioning explicit (e.g.,
offer.device@v1
) and separate from a card’s content version and ACL revision.
2) Glossary (Final Terms)
Concept | Name (singular / plural) | Everyday speech | Digital record (card type) | Notes |
---|---|---|---|---|
Digital record describing anything | Card / Cards | “open the drill card” | type:*@vN |
Signed, encrypted, schema-versioned |
Schema/format | Type | “type offer.device@v1 ” |
— | Major version for breaking changes |
Durable real thing (tool, room, bike) | (just the noun) / piece(s) | “borrow the drill” | asset.device@v1 (example) |
Use piece only if needed to disambiguate multiples |
Consumables (aggregate) | Stock | “we have duct tape in stock” | stock.supply@v1 |
Represents managed pool of a consumable |
Consumable batch | Lot / Lots | “a lot of 100 yards” | stock.lot@v1 |
Tracks quantity, source, expiry |
Stock movement | Move / Moves | “issue 10 yards” | stock.move@v1 |
One of: receipt (add), issue (remove), transfer (between stores) |
Request for something | Need / Needs | “post a need for tape” | need.*@v1 |
Searchable projection only |
Availability / ability | Offer / Capacity | “publish an offer” | offer.*@v1 |
What can be allocated |
Time-bounded right to use | Permit / Permits | “you have a permit for the drill” | permit.usage@v1 |
Non-transferable, revocable |
Result after use | Outcome / Outcomes | “log the outcome” | outcome.*@v1 |
For learning & audit |
Minimal searchable subset | Index View | “peer index view” | (derived JSON) | Audience-scoped projection |
Access authority pointer | Authority Handle | “ask the authority in the handle” | (tiny signed JSON) | {did, endpoint, acl_rev} |
Permission linkage | Relation / Relations | “add a relation for viewer” | (Zanzibar tuples) | Stored server-side, not in cards |
Encrypted payload + header | Cipherpack | “download the cipherpack” | (blob) | Holds ciphertext + key-bag header |
Short-lived decryption packet | Key Grant | “request a key grant” | (sealed bytes) | Per card/version; expires in minutes |
Rule-of-thumb in conversation: If you don’t say “card,” you are talking about the real thing.
3) Consumables: Fields & Phrasing
- Everyday speech: “100 yards of duct tape”, “issue 10 yards”, “we received 5 rolls.”
- Standard fields for consumables:
{ "quantity": 100, "measure": "yard", "packaging": "roll", // optional "lots": [ {"lot_id": "lot_01ABC...", "quantity": 60, "receivedAt": "2025-08-01", "expiresAt": null}, {"lot_id": "lot_01DEF...", "quantity": 40, "receivedAt": "2025-08-10", "expiresAt": null} ] }
- Moves (
stock.move@v1
) specify one of:- receipt: add to stock
- issue: remove from stock (e.g., to a task/permitted user)
- transfer: move between stores/collections
- Avoid the word unit for “unit of measure.” Use measure instead.
Example sentence:
“Issue 10 yards from the duct tape stock (lot L-482) to Alice’s task, and the card will show the new balance.”
4) Durables: Modeling & Speech
- Everyday speech: “the drill”, “room A”, “the cargo bike”.
- Digital card:
asset.device@v1
for tools,asset.space@v1
for rooms/spaces, etc. - For many identical physical items, either:
- Track as one card with an
instances
list, or - Create separate piece cards:
asset.device.piece@v1
(only when disambiguation is necessary).
- Track as one card with an
- Permit grants time-bound access: “permit 2 weeks for coursework.”
5) Style Rules for Writing
- Prefer plain nouns for real things; append card to refer to records.
- Keep IDs internal:
card_01HZ…
,lot_01HX…
. Use friendly titles in UI. - Use Title Case in UI (“Garden Shed Drill”), snake_case in APIs.
- In UI copy, buttons read: Open card, Create card, Issue stock, Receive stock, Transfer stock, Grant permit, Close permit.
6) Schema Naming Patterns
- Durables:
asset.device@v1
,asset.space@v1
,asset.vehicle@v1
- Consumables:
stock.supply@v1
,stock.lot@v1
,stock.move@v1
- Coordination:
need.*@v1
,offer.*@v1
,permit.usage@v1
,outcome.*@v1
Versioning rules:
@vMAJOR
in the type = breaking change to the schema/format.card.version
= content edit number for a specific card.card.acl_rev
= authorization state revision.
7) API/DB Mapping (Concise)
- Tables:
cards
,relations
,needs
,offers
,permits
,outcomes
,stock_supply
,stock_lot
,stock_move
. - Key columns:
cards.type_id
(e.g.,offer.device@v1
)cards.version
(content version int)cards.acl_rev
(auth revision int)cards.authority_handle
(JSON:{did, endpoint, acl_rev}
)
- Endpoints:
POST /cards
(create/update Card)POST /permits
(issue Permit)POST /key-grant
(get Key Grant)POST /stock/move
(receipt/issue/transfer)GET /search
(returns Index Views only)
8) Examples in Natural Sentences
- “Post a Need card for 100 yards of duct tape; when approved, we’ll issue from the duct tape stock and record a Move.”
- “Borrow the drill; your Permit begins Monday and unlocks the shed code (via Key Grant) on the drill card.”
- “Our node mirrors the Index View for garden tools from the co‑op and uses the Authority Handle to request access when you open a card.”
9) Quick Glossary (tooltips you can reuse)
- Card: Digital record; signed, encrypted, and shareable.
- Type: The schema/format a card follows (
something@v1
). - Stock: Consumables we track (quantities & measures).
- Lot: A specific batch of stock with its own quantity/expiry.
- Move: A stock adjustment (receipt, issue, or transfer).
- Permit: Time-bounded right to use something; non-transferable.
- Relation: Permission link (who can do what).
- Index View: Minimal, searchable summary of a card for a given audience.
- Authority Handle: How to contact the node that decides access.
- Key Grant: Short-lived decryption key for a specific card version.
One‑Sentence Summary
Cards are the digital source of truth; plain nouns refer to real things. Use stock/lot/move for consumables, permit for time-bounded access, and keep schema versions (@vN
) separate from card versions and ACL revisions.