cordance-emit 0.1.1

Cordance target emitters: AGENTS.md, CLAUDE.md, .cursor/rules, .codex, axiom harness-target.
Documentation
//! `.cordance/pack.json` IR emitter.

use camino::Utf8PathBuf;
use cordance_core::pack::CordancePack;

use crate::{EmitError, TargetEmitter};

pub struct PackJsonEmitter;

impl TargetEmitter for PackJsonEmitter {
    fn name(&self) -> &'static str {
        "cordance-pack-json"
    }

    fn render(&self, pack: &CordancePack) -> Result<Vec<(Utf8PathBuf, Vec<u8>)>, EmitError> {
        let bytes = serde_json::to_vec_pretty(pack)?;
        Ok(vec![(".cordance/pack.json".into(), bytes)])
    }
}