= Archived Elixir Experiment
:toc:
:sectnums:

== Status

**ARCHIVED**: 2025-12-09

This code represents an early experiment using Elixir/Ecto for the Palimpsest metadata schema.
It has been superseded by the OCaml implementation.

== What Was Here

* `ecto/` - Ecto schema definitions for Palimpsest metadata
* `examples/elixir/` - Example Elixir code and deployment strategies
* `formats/elixir/` - Elixir format definitions

== Why Archived

The project consolidated on OCaml as the primary implementation language because:

1. **Type Safety**: OCaml's type system better represents the complex consent hierarchies
2. **Relational Logic**: OCanren (miniKanren for OCaml) enables declarative license compatibility reasoning
3. **Browser Compilation**: Melange compiles OCaml to JavaScript for browser-based validation
4. **Functional Purity**: Better fit for immutable consent records

== Resurrection

If you need to resurrect this code:

[source,shell]
----
# Move back to active codebase
mv ecto ../METADATA_v0.4/
mv elixir ../examples/
mv formats/elixir ../formats/
----

== Historical Note

The Elixir experiment was valuable for exploring Ecto's schema validation,
but the project's needs evolved toward more sophisticated type-level guarantees
and relational programming capabilities.
