| 14 | | - Design Goals |
| 15 | | |
| 16 | | |----------------|--------------------------------------------------------------------------------------------------------| |
| 17 | | | Goal | Description | |
| 18 | | |----------------|--------------------------------------------------------------------------------------------------------| |
| 19 | | | *Determinism* | IDs are derived from canonicalized entity content — identical input always yields identical ID prefix. | |
| 20 | | | *Integrity* | BLAKE2s hashing and digital signatures protect against manual tampering. | |
| 21 | | | *Traceability* | Version numbers (=@001A=, =@002S=, …) track entity lifecycle transitions. | |
| 22 | | | *Stability* | Hash prefixes remain constant across state changes; only version and state suffixes evolve. | |
| 23 | | | *Auditability* | Every entity can be serialized, verified, and reconstructed without hidden dependencies. | |
| 24 | | | *Simplicity* | Pure-Python, zero external libraries, self-contained and easy to embed. | |
| 25 | | |----------------|--------------------------------------------------------------------------------------------------------| |
| 26 | | |
| 27 | | * Flex-O ID Structure |
| | 14 | == Design Goals == |
| | 15 | |
| | 16 | |
| | 17 | || Goal ||= Description || |
| | 18 | || Determinism ||= IDs are derived from canonicalized entity content — identical input always yields identical ID prefix. || |
| | 19 | || Integrity ||= BLAKE2s hashing and digital signatures protect against manual tampering.|| |
| | 20 | || Traceability ||= Version numbers (=@001A=, =@002S=, …) track entity lifecycle transitions. || |
| | 21 | || Stability ||= Hash prefixes remain constant across state changes; only version and state suffixes evolve. || |
| | 22 | || Auditability ||= Every entity can be serialized, verified, and reconstructed without hidden dependencies. || |
| | 23 | || Simplicity ||= Pure-Python, zero external libraries, self-contained and easy to embed. || |
| | 24 | |
| | 25 | |
| | 26 | = Flex-O ID Structure = |
| 35 | | |-----------+-----------------+----------------------------------------------| |
| 36 | | | Segment | Example | Meaning | |
| 37 | | |-----------+-----------------+----------------------------------------------| |
| 38 | | | *Domain* | =AF or PY_LANG= | Uppercase - Logical scope (e.g. "Air Force") | |
| 39 | | | *Type* | =I= | Entity type (e.g. ITEM) | |
| 40 | | | *Date* | =250101= | UTC creation date (YYMMDD) | |
| 41 | | | *Hash* | =9A4C2D4F6E53= | 12-digit BLAKE2s digest of canonical content | |
| 42 | | | *Version* | =003= | Sequential version counter | |
| 43 | | | *State* | =S= | Lifecycle state (D, A, S, P, O) | |
| 44 | | |-----------+-----------------+----------------------------------------------| |
| | 34 | |
| | 35 | || Segment || Example || Meaning || |
| | 36 | || *Domain* || =AF or PY_LANG= || Uppercase - Logical scope (e.g. "Air Force") || |
| | 37 | || *Type* || =I= || Entity type (e.g. ITEM) || |
| | 38 | || *Date* || =250101= || UTC creation date (YYMMDD) || |
| | 39 | || *Hash* || =9A4C2D4F6E53= || 12-digit BLAKE2s digest of canonical content || |
| | 40 | || *Version* || =003= || Sequential version counter || |
| | 41 | || *State* || =S= || Lifecycle state (D, A, S, P, O) || |
| | 42 | |