namespace Journal.Core.Services; public interface IJournalDatabaseService { string GetDatabasePath(string? dataDirectory = null); byte[] DeriveDatabaseKey(string password); string BuildPragmaKeyStatement(string password); IReadOnlyDictionary GetSchemaStatements(); string WriteSchemaBootstrap(string? dataDirectory = null); JournalDatabaseStatus GetStatus(string password, string? dataDirectory = null); JournalDatabaseHydrationResult HydrateWorkspace(string password, string? dataDirectory = null); } public sealed record JournalDatabaseStatus( string DatabasePath, int KeyLengthBytes, int Iterations, string KeyDerivation, IReadOnlyList SchemaTables, string SchemaBootstrapPath, bool RuntimeReady, string RuntimeMessage); public sealed record JournalDatabaseHydrationResult( string DatabasePath, string SchemaBootstrapPath, int EntryFilesProcessed, bool RuntimeReady, string Message);