Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>В каждом слое есть своё API, свои наборы операций, свои структуры данных и константы.
AS>Если хочется иметь полный контроль над всем, AS>но при этом не давать доступ к нижним уровням на прямую, AS>то каждый более высокий оказывается объёмнее предыдущего (так как включает всё что уже есть ниже, но по-своему).
Ну сделайте на верхнем уровне возможность работать с готовыми объектами из уровня ниже. Тогда пользователь всего это API сможет, если захочет, в проект csproj другой форматировщик для отступов, который создаст заранее сам. Все вменяемые библиотеки так устроены.