feat(subgen): add service generator