1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//! Generic protocol core of PLANA (absorbed from the former
//! `plana-protocol-core` crate; the standalone name remains as a shim) — the shared wire types that any platform
//! profile builds on.
//!
//! `plana-protocol-core` owns the platform-independent message set of the
//! PLANA protocol:
//!
//! - the base protocol messages ([`protocol::base_messages`]),
//! - connection handshake / version / identity negotiation primitives
//! ([`protocol::handshake`]),
//! - health and network descriptors ([`http`]),
//! - RBAC permission/role types ([`rbac`]),
//! - regional compliance policy ([`region`]),
//! - cross-platform identity (machine fingerprint, [`identity`]),
//! - generic connection-topology vocabulary ([`enums`]).
//!
//! The generic JSON-RPC 2.0 envelope intentionally does NOT live here: its
//! single canonical definition is `plana_jsonrpc::types` in the framing
//! crate, re-exported by the `plana` umbrella as `plana::jsonrpc`. A former
//! copy in this crate was removed after the two drifted apart.
//!
//! Types carry serde (Serialize and/or Deserialize) and, where applicable,
//! JSON-Schema (`schemars::JsonSchema`) and TypeScript-bindings (`ts-rs`)
//! support; e.g. the http descriptors are Serialize + TS only, while the
//! protocol message types are full serde round-trip types.
//!
//! This crate knows nothing about any specific platform domain. Domain
//! profiles (e.g. `plana-celestia-types`) depend on it and plug their
//! per-domain message vocabularies in; the `plana` umbrella crate re-exports
//! the core alongside a domain profile and the `plana-jsonrpc` framing crate.
// ── Module tree ─────────────────────────────────────────────
// The generic wire vocabulary lives under a small set of folders:
// protocol/ — base messages, handshake (WS transport)
// http/ — health/network/status descriptors and generic REST DTOs
// and a few single-file modules at the root (enums, identity, rbac, region).
// The glob re-exports at the bottom keep every type reachable at the crate
// root (`plana_protocol_core::TypeName`).
pub use ;
// protocol/ — transport core
pub use *;
pub use *;
// enums/ — generic vocabulary enums (ConnectionType, …)
pub use *;
// region/ — regional compliance policy types
pub use *;
/// Protocol version advertised by the platform.
pub const PROTOCOL_VERSION: &str = "1.0.0";