Module Algostream_normalization.Lineage

Lightweight transformation-chain lineage encoded as a "/"-separated path string.

Reuses the existing Event.t.source field — no schema change. The path documents the sequence of transformations a payload has been through:

Strict format (^[a-z0-9_]+(/[a-z0-9_]+)*$) and 64-char cap are enforced fail-closed.

type t = string list
val of_source : string -> t

Split a source string on "/". Returns the empty list for an empty input.

val to_source : t -> string
val push : string -> string -> string option

push parent child appends child to parent's path. Returns None if the result violates the format/length contract.

val is_valid : string -> bool
val max_length : int