Write a test case generator that creates representative inputs for a feature based on specified rules and edge cases.
Implement generate_test_cases(rules, seed, count), returning a list of objects with input, valid, and covers fields. rules contains typed field specifications, optional required fields, relational constraints, and per-field edge-case values. Generated inputs must be deterministic for a given seed, include every configured edge case when count permits, and fill remaining cases with valid randomized values. Mark each case as valid according to the rules and identify covered edge cases.
def generate_test_cases(rules, seed, count):