Never let go of an opportunity to ask what you want.
What has likely happened here is: In the early days of the company, the directors had plenty of critical or urgent external matters to deal with, and decided to get to contracts, leave policy and other internal matters "later". Since the business kept running without the employment contracts, it never became a priority and they just forgot about it.
The same goes for your leaves. Since you (probably?) didn't ask for leaves, they did not realize it was an issue at all.1 In other words, this situation is the outcome of a combination of "out of sight, out of mind" and "if it isn't broken, don't fix it".
You can shake the status quo easily by asking your director(s):
We never got around to signing an employment contract and defining our leave policy. We are close to completing 3 years. Is this a good time to get those done?
That would bring the issue into their mind space (if you will). Avoid starting the conversation with a confrontation — or much worse, with a lawsuit. Always give people a chance to save face. Assuming good intentions, they would respond with, "Oh, that's right! We totally forgot about it. We will look into that. Give us about a week's time."2
You could then ask for accumulating unused leaves from the previous years, or for encashing them, or for some other compensation. The exact options at your disposal would depend on your local laws.
1 Although good managers notice when an employee hasn't taken a break for a long time.
2 If they explicitly refuse the contract or leaves, then you might have to consider talking to a lawyer.