using System;
using System.Collections.Generic;
namespace Cthangover.Tools.EntityEditor
{
///
/// One property of an entity as an form shows
/// it. A concrete editor lists its fields; properties no field names are
/// shown and edited as raw JSON ("other fields"), so the form never hides or
/// drops data a mod added.
///
public class EntityField
{
/// JSON property name.
public string Key { get; init; }
/// Locale key of the label.
public string LabelKey { get; init; }
/// Locale key of the tooltip, or null.
public string TooltipKey { get; init; }
/// How the value is edited.
public EntityFieldKind Kind { get; init; }
/// Picture: the file group of the pictures (items, characters…).
public string Group { get; init; }
/// Choice, flags, list: the values offered (read when the form is built).
public Func> Options { get; init; }
/// Locale text: how a new entity's key is made from its id ({0} = id).
public string KeyPattern { get; init; }
}
}